package dto

import (
	"errors"
	"time"
)

/**
 * @Author: yang
 * @Description：聊天室列表--输入
 * @Date: 2021/10/19 16:57
 */
type RoomListInput struct {
	Keyword string `json:"keyword" form:"keyword"`
}

/**
 * @Author: yang
 * @Description：聊天室列表--输出
 * @Date: 2021/10/19 17:24
 */
type RoomListOutput struct {
	Count int              `json:"count" form:"count"` // 聊天室总数
	List  []RoomDetailInfo `json:"list" form:"form"`   // 聊天室列表
}

type RoomDetailInfo struct {
	Id         int    `json:"id" form:"id"`                   // 主键ID
	Number     string `json:"number" form:"number"`           // 聊天室编号（唯一标识）
	Name       string `json:"name" form:"name"`               // 聊天室名称
	CreatedAt  string `json:"created_at" form:"created_at"`   // 创建时间
	UserNumber int    `json:"user_number" form:"user_number"` // 聊天室内人数
}

/**
 * @Author: yang
 * @Description：添加聊天室--输入
 * @Date: 2021/10/20 17:46
 */
type RoomAddInput struct {
	RoomName string `json:"room_name" form:"room_name"`
}

/**
 * @Author: yang
 * @Description：添加聊天室--输入--数据验证
 * @Date: 2021/10/20 17:51
 */
func (rai *RoomAddInput) CheckRoomAddInput() error {
	if rai.RoomName == "" {
		return errors.New("聊天室名称不能为空~")
	}
	return nil
}

/**
 * @Author: yang
 * @Description：聊天室详情--输入
 * @Date: 2021/10/25 14:55
 */
type RoomInfoInput struct {
	RoomId int `json:"room_id" form:"room_id"`
}

/**
 * @Author: yang
 * @Description：聊天室详情--输入--数据验证
 * @Date: 2021/10/25 14:57
 */
func (rii *RoomInfoInput) CheckRoomInfoInput() error {
	if rii.RoomId == 0 {
		return errors.New("聊天室Id不能为空")
	}
	return nil
}

/**
 * @Author: yang
 * @Description：聊天室详情
 * @Date: 2021/10/25 19:32
 */
type RoomDetailOutput struct {
	RoomInfo RoomInfo    `json:"room_info" form:"room_info"`
	UserList interface{} `json:"user_list" form:"user_list"`
	LogList  interface{} `json:"log_list" form:"log_list"`
}

/**
 * @Author: yang
 * @Description：聊天室详情
 * @Date: 2021/10/25 18:12
 */
type RoomInfo struct {
	Id        int       `json:"id" form:"id"`
	Number    string    `json:"number" form:"number"`
	Name      string    `json:"name" form:"name"`
	CreatedAt time.Time `json:"create_at" form:"create_at"`
}
